package Example;

use Moose;

sub foo {
	print "      foo\n";
}

before 'foo' => sub { print "about to call foo\n"; };
after 'foo'  => sub { print "just called foo\n"; };

around 'foo' => sub {
	my $orig = shift;
	my $self = shift;
	
	print "  I'm around foo\n";
	
	$self->$orig(@_);
	
	print "  I'm still around foo\n";
};

Example->new->foo();